﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Fuyao.Business.Entities.Models;
using Fuyao.Business.Logic.BC;
using Fuyao.Win.UI.Util;
using Fuyao.Win.UI.Common;

namespace Fuyao.Win.UI.Mantenimientos
{
    public partial class frmParametros : Form
    {
        BusinessLogic bc = new BusinessLogic();
        List<Parametro> listParametros = new List<Parametro>();

        public frmParametros()
        {
            InitializeComponent();
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            this.ControlBox = false;
            this.WindowState = FormWindowState.Maximized;
            this.BringToFront();            
        }

        private void setColumnasGrilla()
        {
            colCategoria.DataPropertyName = "TableName";
            colNombre.DataPropertyName = "Nombre";
            colValor.DataPropertyName = "Valor";
            colDescripcion.DataPropertyName = "Notas";
        }

        private void cargarGrilla(bool _flag)
        {
            listParametros = bc.getParametroList();
            if (listParametros.Count > 0) dgvParametros.DataSource = listParametros;
            else
            {
                if (!_flag)
                {
                    MessageBox.Show("No se encontraron registros", "Sistema FUYAO - Mensaje de Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    dgvParametros.DataSource = null;
                }
            }
        }

        private void btnRestaurar_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Normal;
        }

        private void btnMaximizar_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            btnGrabar.Enabled = true;
            Parametro oParametro = new Parametro();
            oParametro.CreadoPor = VariablesGlobales.GlobalEnUsuario.UsuarioID;
            listParametros.Add(oParametro);
            dgvParametros.DataSource = null;
            dgvParametros.DataSource = listParametros;
        }

        private void btnGrabar_Click(object sender, EventArgs e)
        {
            bc.InsertarActualizarParametroList(listParametros);
        }

        private void dgvParametros_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            if (!dgvParametros.IsCurrentCellDirty) { VariablesGlobales.IsDataGridViewCellDirty = false; return; }
            VariablesGlobales.IsDataGridViewCellDirty = true;
        }

        private void dgvParametros_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (VariablesGlobales.IsDataGridViewCellDirty)
            {
                Parametro oParametro = (Parametro)dgvParametros.CurrentRow.DataBoundItem;
                oParametro.FueModificado = true;
                btnGrabar.Enabled = true;
            }
        }

        private void frmParametros_Load(object sender, EventArgs e)
        {
            Utilitarios.configurarGrilla(ref dgvParametros);
            setColumnasGrilla();
            cargarGrilla(true);
        }
    }
}
